<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<![endif]-->
<title>VIM 中文帮助: Win32 GUI</title>
<link rel="stylesheet" href="vim-stylesheet.css" type="text/css" />
<link rel="canonical" href="https://yianwillis.github.io/vimcdoc/doc/gui_w32.html" />
<script type="text/javascript" src="vimcdoc.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<nav id=banner>
<form action=tags.html target="tag_iframe">
  <input type="text" name="tag" id="tag" placeholder="标签搜索">
</form>
<iframe name="tag_iframe" src=""></iframe>
<a href="help.html">帮助总览</a> &middot;
<hr/>
<a href="quickref.html">快速参考</a> &middot;
<a href="index.html">命令索引</a> &middot;
<a href="eval.html#functions">函数列表</a> &middot;
<a href="quickref.html#option-list">选项列表</a> &middot;
<hr/>
<a href="usr_toc.html">用户手册</a> &middot;
<a href="help.html#reference_toc">参考手册</a> &middot;
</nav>

<header>
<h2>gui_w32</h2>
</header>
<article id=outer>
<section class=inner>
<b class="vimtag"> <a name="gui_w32.txt">gui_w32.txt</a> </b>   适用于 Vim 9.0 版本。   最近更新: 2023年2月


                  <code class="vim">VIM 参考手册    by Bram Moolenaar</code>
                                <code class="vim">译者</code>: Dasn、Willis


Vim 的 Win32 图形用户界面                               <b class="vimtag"> <a name="gui-w32">gui-w32</a> </b> <b class="vimtag"> <a name="win32-gui">win32-gui</a> </b>

1. 启动图形界面                  <a href="gui_w32.html#gui-w32-start">gui-w32-start</a> 
2. 设置 Vim 为默认的编辑器       <a href="gui_w32.html#vim-default-editor">vim-default-editor</a> 
3. 使用剪贴板                    <a href="gui_w32.html#gui-clipboard">gui-clipboard</a> 
4. 命令行命令                    <a href="gui_w32.html#gui-shell-win32">gui-shell-win32</a> 
5. 特殊颜色                      <a href="gui_w32.html#win32-colors">win32-colors</a> 
6. Windows 对话框和浏览器        <a href="gui_w32.html#gui-w32-dialogs">gui-w32-dialogs</a> 
7. 命令行参数                    <a href="gui_w32.html#gui-w32-cmdargs">gui-w32-cmdargs</a> 
8. 杂项                          <a href="gui_w32.html#gui-w32-various">gui-w32-various</a> 

其它相关文章:
 <a href="gui.html#gui.txt">gui.txt</a>        所有的 GUI 版本的通用功能
 <a href="os_win32.html#os_win32.txt">os_win32.txt</a>   Win32 版本特有的功能

</section><hr class="doubleline" /><section class=inner>
<h4>1. 启动图形界面                                         <b class="vimtag"> <a name="gui-w32-start">gui-w32-start</a> </b></h4>
Vim 的 Win32 GUI 版本 (gvim) 呈现给你的是一个真正 Windows 图形界面程序。无论你
用什么方式启动它，也不管你是否修改了它的文件名，gvim 总是启动一个图形界面。

图形界面程序一直在 Windows 子系统里运行。大多数命令行会在启动 gvim 之后立即返
回提示符。如果没有返回，那你应该使用 "start" 命令: 
<code class="example">        start gvim [option] file ..</code>
                                                        <b class="vimtag"> <a name="E988">E988</a> </b>
控制台版本用  <a href="starting.html#-g">-g</a>  选项也可通过执行 gvim.exe 来启动 GUI: 
<code class="example">        vim -g [options] file ..</code>
要可以这样，gvim.exe 必须和 vim.exe 在同一个目录，而且编译时要打开此特性。

也可从控制台版本使用  <a href="gui_x11.html#:gui">:gui</a> 。不过，这是个实验特性且编译时必须打开此特性。它使
用会话文件来在 GUI Vim 中重建控制台 Vim 的当前状态。

<code class="note">注意</code>: 所有的字体 (无论粗体还是斜体) 必须大小相同！！！如果不是，那你可能什么字
都看不到或者只能看到一些杂乱无章的文字。Vim 不会检查文字的大小。需要强调一点，
这里的字体大小是以 "像素" 为单位计算的。有些字体的大小以 "点数" 为单位计算，这
时即便你选的两种字体的 "点" 数相同，但它们的像素数却可能不同。另外，与字体位置
相关的属性 (比如: ascent 和 descent) 也必须相同。(ascent 和 descent 是用来说明
字体高度的两种属性，具体可以参考相关资料 <code class="vim">译者</code>)

Win32 GUI 版本里有一个额外的菜单选项 "编辑/选择字体"，它能调用标准的 Windows
字体选择对话框。

设定菜单的高度对 Win32 GUI 不起作用。

                                                        <b class="vimtag"> <a name="gui-win32-maximized">gui-win32-maximized</a> </b>
如果你想让 Vim 在启动时最大化窗口，可以把下面的命令加到你的 vimrc 或 gvimrc 文
件中: 
<code class="example">        au GUIEnter * simalt ~x</code>


插件方式使用 Vim                                        <b class="vimtag"> <a name="gui-w32-windowid">gui-w32-windowid</a> </b>

gvim 正常启动时，建立它自己的顶层窗口。如果传给 Vim 命令行选项  <a href="starting.html#--windowid">--windowid</a>  和
一个十进制或十六进制的参数，Vim 会建立窗口号为给定 ID 的窗口的子窗口。这样，
Vim 就可以作为另一个应用的插件。这实际上是一个程序员接口，必须要有配套的应用来
正确启动 Vim 才行。

</section><hr class="doubleline" /><section class=inner>
<h4>2. 设定 Vim 为默认的文本编辑器                          <b class="vimtag"> <a name="vim-default-editor">vim-default-editor</a> </b></h4>
设定 Vim 为某一类文件的默认编辑器:
1. 打开 Windows 资源管理器
2. 选择 查看/选项 -&gt; 文件类型
3. 选定想让 gvim 处理的文件类型，然后选择 gvim 的路径。(在文件类型选项卡中，你
   也可以用 3 个空格给没有扩展名的文件指定关联程序)。在 "操作" 列表框的 open
   一栏中输入: 
<code class="example">        gvim "%1"</code>
   这里加上引号可以让程序处理带空格的文件名。
   你也可以这样用: 
<code class="example">        gvim "%L"</code>
   这样可以在某些场合避免处理短文件名 (8.3 格式)，但我不敢保证在每个地方都好
   用。

现在你已经做好了 Vim 与文件的关联了，当你双击鼠标打开文件时，Vim 会切换到文件
所在目录。

如果你想让 Vim 打开文件时最大化，可以在 Open 一栏中输入: 
<code class="example">        gvim -c "simalt ~x" "%1"</code>
<code class="example"></code>
如果你把 Vim 放到了其它目录 (比如，你刚刚在别的目录里安装了一个新版本的 Vim，
并且想马上用它)，用下面的办法也可以:
1. 选定想用 Vim 打开的文件
2. <code class="special">&lt;Shift-F10&gt;</code>
3. 选 "打开方式……" 菜单项
4. 点击 "其它……"
5. 找到 Vim 的 (新) 位置，点击 "打开"
6. 在 "始终使用该程序打开这些文件" 划勾
7. <code class="special">&lt;OK&gt;</code>

                                                <b class="vimtag"> <a name="send-to-menu">send-to-menu</a> </b> <b class="vimtag"> <a name="sendto">sendto</a> </b>
你也可以把 Vim 放到 "发送到" 菜单里去:
1. 打开资源管理器
2. 找到你的 sendto 目录:
   C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo 。
3. 点右键，选 "新建-&gt;快捷方式"
4. 在快捷方式向导程序里点击 "浏览"，找到 VIM/GVIM，程序会得到其完整路径。

当你使用 "发送到 Vim" 时，Vim 会切换到那个文件的目录。<code class="note">注意</code>，在某些 Windows 版
本上任何长的目录名都会以短的 (MS-DOS) 的形式出现。这是 Windows "发送到" 功能的
一个限制。

                                                <b class="vimtag"> <a name="notepad">notepad</a> </b>
你可以用 gvim.exe 来替换 notepad.exe，但是这样会带来许多副作用。有些程序依赖于
notepad 参数。比如，有的程序调用 "notepad -p" 来打印文件，但是这些参数放到
gvim 上就不好用了。所以最好还是别改动 notepad，用别的方法启动 gvim。

                                                <b class="vimtag"> <a name="win32-popup-menu">win32-popup-menu</a> </b>
有一种更直接的方法，就是安装 "Edit with Vim" 选项到右键弹出菜单里，这样你就可
以用 vim 编辑任何文件了。

这种方法可以和上面提到的默认打开方式 (文件关联) 共存。不同之处在于: 如果把 Vim
设定为默认打开方式，当你用鼠标双击该类型的文件时，系统会自动调用 Vim 打开该文
件。而如果你把 "用 vim 编辑" 加到弹出菜单里，就可以保留原来的文件关联，当你想
用 Vim 处理该文件时，只要在文件上单击鼠标右键，选择 "Edit with Vim" 即可。例
如: 你可以把 "*.mak" 文件与 make 程序关联，这样你就可以通过双击文件来调用 make
程序执行它，通过右键 "Edit with Vim" 对 Makefile 进行编辑。

你可以用鼠标右键 "Edit with Vim" 打开你选择的文件。如果你选择了多个文件，你会
发现弹出菜单里有两个相关选项:
"Edit with multiple gvims"      -- 为所选的每一个文件打开一个 gvim
"Edit with single gvim"         -- 用一个 gvim 打开所选的全部文件
如果已经有一个 gvim 正在运行，弹出菜单里还会多一个选项:
"Edit with existing gvim"       -- 用正在运行的 gvim 编辑所选文件

"edit with existing gvim" 菜单选项可以通过注册表关闭，在
HKLM\Software\Vim\Gvim 里加入名为 DisableEditWithExisting 的项目，可以是任何
值。
                                                <b class="vimtag"> <a name="install-registry">install-registry</a> </b>
你可以通过安装程序 "install.exe" 十分容易地把 "Edit with Vim" 加到右键菜单中，
安装程序会帮你在注册表中添加几个键值。

当然，你也可以自己修改注册表。这比较麻烦！尽量用 install.exe 程序。

1. 打开注册表编辑器 "regedit.exe"
2. 加入这些键值:
<code class="section">   key          value name                  value </code>
   HKEY_CLASSES_ROOT\CLSID\<code class="special">{51EEE242-AD87-11d3-9C1E-0090278BBD99}</code>
                <code class="special">{default}</code>                   Vim Shell Extension

HKEY_CLASSES_ROOT\CLSID\<code class="special">{51EEE242-AD87-11d3-9C1E-0090278BBD99}</code>\InProcServer32
                <code class="special">{default}</code>                   <code class="special">{path}</code>\gvimext.dll
                ThreadingModel              Apartment
   HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\gvim
                <code class="special">{default}</code>                   <code class="special">{51EEE242-AD87-11d3-9C1E-0090278BBD99}</code>
   HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved
                <code class="special">{51EEE242-AD87-11d3-9C1E-0090278BBD99}</code>
                                            Vim Shell Extension
   HKEY_LOCAL_MACHINE\Software\Vim\Gvim
                path                        <code class="special">{path}</code>\gvim.exe
   HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\vim 8.2
                DisplayName                 Vim 8.2: Edit with Vim popup menu entry
                UninstallString             <code class="special">{path}</code>\uninstal\.exe

   用实际的路径替换 <code class="special">{path}</code>。
   不要输入 <code class="special">{default}</code> (默认)，这是注册表键自身的值。

要从弹出菜单里删除 "Edit with Vim"，只要在注册表里删除上面提到的各项即可。卸载
程序 "uninstall.exe" 可以帮你完成这项工作，用 "控制面板" 的 "添加/删除程序" 也
可以。

如果你发现用 "添加/删除程序" 卸载 gvim 之后，其它类型文件的关联出错了，你可以
自己动手修改过来 (用 "资源管理器"，前面已经提过)。这种情况好像只出现在 NT 系列
的 Windows 上 (Windows 的漏洞？)。解决办法:
1. 找到文件的类型名。打开注册表编辑器在 \\HKEY_CLASSES_ROOT 下搜索就能找到。
2. 在资源管理器里，"查看" &gt; "选项" &gt; "文件类型"。找到该类型文件，单击 "编辑"。
   在 "操作" 列表中选择应该被设置为默认的选项 (正常情况下是 open)，单击 "设置
   为默认值"。


把 Vim 加入到 "Open With..." 关联菜单                   <b class="vimtag"> <a name="win32-open-with-menu">win32-open-with-menu</a> </b>

如果你在 vim 安装程序里选择了 Add Vim to the "Open With..." menu (把 Vim 加入
"Open With..." 菜单)，这样你可以通过右键菜单调用 Vim 来编辑大多数文件，虽然不
是所有的文件 (不清楚具体原因)。因而 "Edit with Vim" 菜单选项还是有用的。

还有一个原因，就是加入这个选项之后可以在 Internet Explorer 里直接调用 Vim 编
辑当前的 HTML 文档。要使用这种功能，在 "工具" 菜单 "Internet 选项" 里，使用
"程序" 选项卡，"HTML 编辑器" 里选择 Vim。如果没有 Vim 选项，说明 Vim 安装的不
正确。

手工安装可以使用下面的脚本:

</section><hr class="singleline" /><section class=inner>
REGEDIT4

[HKEY_CLASSES_ROOT\Applications\gvim.exe]

[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell]

[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit]

[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command]
@="c:\\vim\\vim82\\gvim.exe \"%1\""

[HKEY_CLASSES_ROOT\.htm\OpenWithList\gvim.exe]

[HKEY_CLASSES_ROOT\*\OpenWithList\gvim.exe]

</section><hr class="singleline" /><section class=inner>

"c:\\vim\\vim82\\gvim.exe" 是 Vim 程序的实际位置，请根据具体情况修改。

删除 Vim 可以用 Vim 的卸载程序，或者用 "regedit" 手动删除注册表中的这些键值。

</section><hr class="doubleline" /><section class=inner>
<h4>3. 使用剪贴板                                           <b class="vimtag"> <a name="gui-clipboard">gui-clipboard</a> </b></h4>
Windows 有一个剪贴板，你可以把文本从别的程序 "剪" 下来，放到剪贴板里，也可以把
剪贴板里的文本 "粘贴" 到别的程序里。在 Vim 里有多种办法完成这些操作。对于其它
操作系统请参阅  <a href="gui.html#gui-selections">gui-selections</a> 

寄存器 "* 反映剪贴板里的内容。 <a href="gui.html#quotestar">quotestar</a> 

<a href="options.html#'clipboard'">'clipboard'</a> 选项值包括 "unnamed" 时，无名寄存器同样如此。这样，你不用在命令前
加 "* 就可以从剪贴板做剪切/粘贴操作。如果不行，试试在 <a href="options.html#'clipboard'">'clipboard'</a> 选项内指定
"unnamedplus" 字符串。

默认情况下，<a href="options.html#'guioptions'">'guioptions'</a> 选项里不包含标志位 'a'。这意味着如果你通过可视模式选
定的文本不进行操作，那么它们不会被复制到剪贴板。当 <a href="options.html#'guioptions'">'guioptions'</a> 包含 'a' 时，
在你选定文本的同时，这些被选定的文本已经被复制到剪贴板上。

                                                        <b class="vimtag"> <a name="mswin.vim">mswin.vim</a> </b>
如果想用 <code class="keystroke">CTRL-X</code>，<code class="keystroke">CTRL-C</code> 和 <code class="keystroke">CTRL-V</code> 这些标准的 MS-Windows 操作方式怎么办？有办
法！用 $VIMRUNTIME\mswin.vim 这个脚本解决。你可以把下面这条命令放到你的 _vimrc
文件里: 
<code class="example">        source $VIMRUNTIME/mswin.vim</code>
<code class="example"></code>
这样一来 <code class="keystroke">CTRL-C</code> 就变成 "复制" 命令了，无法用作中止操作命令。改用 <code class="keystroke">CTRL-Break</code>。

<code class="keystroke">CTRL-Z</code> 用于撤销。这意味着你无法用此快捷键挂起 Vim，可用  <a href="starting.html#:suspend">:suspend</a>  代替 (如果
支持的话)。

                                                <b class="vimtag"> <a name="CTRL-V-alternative">CTRL-V-alternative</a> </b> <b class="vimtag"> <a name="CTRL-Q">CTRL-Q</a> </b>
因为 <code class="keystroke">CTRL-V</code> 被用做 "粘贴"，所以你不能用它来启动 "可视列块" 的选择模式，不过可
以用 <code class="keystroke">CTRL-Q</code> 代替。你也可以在插入模式和命令行模式中用 <code class="keystroke">CTRL-Q</code> 代替 <code class="keystroke">CTRL-V</code>。但是
<code class="keystroke">CTRL-Q</code> 常常被用作控制流，这时候它在某些终端下就不好用了。

<code class="note">备注</code>: gvim 对剪贴板的支持仍有一些漏洞。见  <a href="todo.html#todo">todo</a> 。

</section><hr class="doubleline" /><section class=inner>
<h4>4. 命令行命令                                           <b class="vimtag"> <a name="gui-shell-win32">gui-shell-win32</a> </b></h4>
Vim 用另一个窗口执行外部命令，这使得 Vim 可以运行任何命令。外部命令运行时使用
单独的环境，这和你在 DOS 提示符下运行命令是一样的。

                                                        <b class="vimtag"> <a name="win32-vimrun">win32-vimrun</a> </b>
Vim 通过调用 "vimrun" 间接执行外部命令。所以 vimrun.exe 必须包含在搜索路径内才
能工作，或者把它和 gvim.exe 放到同一个目录下。如果找不到 "vimrun"，命令会直接
执行，但 DOS 窗口会在程序运行完毕后立即关闭。
警 告: 如果你这时用 "X" 按钮关闭命令提示符窗口，并且在弹出确认终止程序对话框时
选择了 "是"，Vim 也会同时被关闭。(用 ":!start" 这种异步方式运行外部命令时，不
会出现这种情况。)

Vim 使用的命令提示符窗口使用在 "控制面板" 里给 "Console" 预先定义的设置。

                                                        <b class="vimtag"> <a name="win32-!start">win32-!start</a> </b>
通常 Vim 在一个命令结束之前不会继续进行下面的工作 (这对 Vim 从命令行中捕获输出
是很有用的)。如果你想让 Vim 启动一个命令后立即返回，可以这样做: 
<code class="example">        :!start [/min] {command}</code>
可选的 "/min" 使窗口最小化。

</section><hr class="doubleline" /><section class=inner>
<h4>5. 特殊颜色                                             <b class="vimtag"> <a name="win32-colors">win32-colors</a> </b></h4>
在 Win32 上，可以使用通常的 DOS 颜色。参见  <a href="os_dos.html#dos-colors">dos-colors</a> 。

另外，系统颜色也一样可以使用。它们以 Sys_XXX 的形式出现，这里 XXX 是相应的颜色
名称 (对大小写不敏感)，如下表所示: (更翔实的描述可以参看 Win32 手册)。

Sys_3DDKShadow          Sys_3DFace                      Sys_BTNFace
Sys_3DHilight           Sys_3DHighlight                 Sys_BTNHilight
Sys_BTNHighlight        Sys_3DLight                     Sys_3DShadow
Sys_BTNShadow           Sys_ActiveBorder                Sys_ActiveCaption
Sys_AppWorkspace        Sys_Background                  Sys_Desktop
Sys_BTNText             Sys_CaptionText                 Sys_GrayText
Sys_Highlight           Sys_HighlightText               Sys_InactiveBorder
Sys_InactiveCaption     Sys_InactiveCaptionText         Sys_InfoBK
Sys_InfoText            Sys_Menu                        Sys_MenuText
Sys_ScrollBar           Sys_Window                      Sys_WindowFrame
Sys_WindowText

可能最有用的值是下面这些:
        Sys_Window          正常的窗口背景颜色
        Sys_WindowText      正常的窗口文字颜色
        Sys_Highlight       加亮的背景颜色
        Sys_HighlightText   加亮的文字颜色

还有一些额外可供使用的颜色:
Gray、Grey、LightYellow、SeaGreen、Orange、Purple、SlateBlue、Violet。

                                                                <b class="vimtag"> <a name="rgb.txt">rgb.txt</a> </b>
此外，还可使用一个缺省色彩列表。详见  <a href="syntax.html#:colorscheme">:colorscheme</a> 。这些颜色原来是在
$VIMRUNTIME/rgb.txt 里定义，现在是在 $VIMRUNTIME/colors/lists/default.vim 中初
始化的  <a href="eval.html#v:colornames">v:colornames</a>  里定义。

</section><hr class="doubleline" /><section class=inner>
<h4>                                                <b class="vimtag"> <a name="gui-w32-dialogs">gui-w32-dialogs</a> </b> <b class="vimtag"> <a name="dialog">dialog</a> </b></h4>6. Windows 对话框和浏览器

Vim 的控制台版本在各个平台上提供的用户界面是类似的，同样 Vim 的 Win32 GUI 版本
也会用与其它平台相似的视窗组件进行操作。


6.1 对话框

用 "confirm" 命令族 (例如: <a href="options.html#'confirm'">'confirm'</a> 选项， <a href="editing.html#:confirm">:confirm</a>  命令和  <a href="builtin.html#confirm()">confirm()</a>  函数)
调用的对话框是基于 GUI 而不是像其它版本那样是基于控制台的。选项 <a href="options.html#'guioptions'">'guioptions'</a>
中的标志位 'c' 可以改变这种情况。

6.2 文件浏览器

如果你在文件编辑命令前加上 ":browse"，Vim 就会弹出一个文件选择窗口，选择现存
文件。参见  <a href="editing.html#:browse">:browse</a> 。

6.3 撕下菜单 (Tearoff Menus)

Vim 的 Win32 GUI 模拟 Motif 的 "撕下菜单"。在每项菜单的顶部有一个 "剪刀" 的标
志。选择后会出现一个浮动窗口，窗口上的按钮与菜单上的选项一一对应。直接点击这些
按钮与点击菜单里的选项是一样的 (包括子菜单)，只是不用每次到菜单里去找了。

当你要反复使用埋藏在子菜单里很深位置的命令时，这个功能就很有用了。

这些撕下菜单分离后，可以放在任何你喜欢的地方，并且总在 gvim 主窗口上方。你可以
像一般的窗口一样关掉它们；如果你退出 gvim，它们也会自动关闭。

                                                        <b class="vimtag"> <a name=":tearoff">:tearoff</a> </b> <b class="vimtag"> <a name=":te">:te</a> </b>
:te[aroff] <code class="special">{name}</code>       撕下菜单 <code class="special">{name}</code>。菜单中必须至少有一个选项，但是不必出
                        现在主菜单栏里 (参见  <a href="gui.html#win32-hidden-menus">win32-hidden-menus</a> )。

例如: 
<code class="example">        :tearoff File</code>
这条命令把 "File" 菜单 (如果存在的话) 撕下来。

<code class="example">        :amenu ]Toolbar.Make    :make&lt;CR&gt;</code>
<code class="example">        :tearoff ]Toolbar</code>
这两条命令创建了一个浮动菜单，这个菜单不在主菜单栏里。

<code class="note">注意</code>: 以 ']' 开头的菜单名不会在菜单栏里显示。

</section><hr class="doubleline" /><section class=inner>
<h4>7. 命令行参数                                           <b class="vimtag"> <a name="gui-w32-cmdargs">gui-w32-cmdargs</a> </b></h4>
命令行参数的行为和控制台应用的相同，见  <a href="os_win32.html#win32-cmdargs">win32-cmdargs</a> 。

</section><hr class="doubleline" /><section class=inner>
<h4>8. 杂项                                                 <b class="vimtag"> <a name="gui-w32-various">gui-w32-various</a> </b></h4>
                                                        <b class="vimtag"> <a name="gui-w32-printing">gui-w32-printing</a> </b>
菜单 "文件/打印"，会打印出经过语法高亮的文本，参见  <a href="print.html#:hardcopy">:hardcopy</a> 。如果你只想打印
原始文本，并且已经安装好了默认的打印机，可以用下面这条命令: 
<code class="example">        :w &gt;&gt;prn</code>
<code class="example"></code>
Vim 支持许多 MS-Windows 的标准特性。一些相关的介绍可以在别的地方找到: 参见
 <a href="options.html#'mouse'">'mouse'</a> ， <a href="gui.html#win32-hidden-menus">win32-hidden-menus</a> 。

                                                        <b class="vimtag"> <a name="drag-n-drop-win32">drag-n-drop-win32</a> </b>
你可以把一个或多个文件拖到 Vim 窗口里，Vim 会用一般的方式打开它们。
参见  <a href="gui.html#drag-n-drop">drag-n-drop</a> 。

                                                        <b class="vimtag"> <a name=":simalt">:simalt</a> </b> <b class="vimtag"> <a name=":sim">:sim</a> </b>
:sim[alt] <code class="special">{key}</code>         模拟 Alt-<code class="special">{key}</code> 组合键。
                        <code class="notvi">{仅适用 Win32 版本}</code>
                        <code class="note">注意</code>: ":si" 意味着 ":s" 带 "i" 标志位。

正常情况下，为了增加键映射 (map) 的数量，Vim 控制所有 Alt-<code class="special">{key}</code> 组合键。但是这
样做可能与用 Alt-<code class="special">{key}</code> 访问菜单的标准方法冲突。
一个快速的解决办法是: 设置 <a href="options.html#'winaltkeys'">'winaltkeys'</a> 选项的值为 "yes"。但是这样阻止了所有与
Alt 键有关的映射。另一个办法是: 设置 <a href="options.html#'winaltkeys'">'winaltkeys'</a> 选项为 "menu"。这样与菜单有
关的快捷键有 Windows 管理，其余的与 Alt 相关的映射仍然好用。但这样又产生了对当
前状态的依赖性。
要解决这个问题，就要用 :simalt 命令告诉 Vim (<a href="options.html#'winaltkeys'">'winaltkeys'</a> 不要设置为 "yes") 虚
拟一个 Windows 风格的 Alt 按键行为。你可以用它来映射 Alt 组合键 (或者任何其它
键) 来产生标准的 Windows 操作。下面是一些例子: 
<code class="example"></code>
<code class="example">        :map &lt;M-f&gt; :simalt f&lt;CR&gt;</code>
这个命令通过把 Alt-F 映射为模拟按键的 Alt 和 F，使你按下 Alt-F 时弹出 "文件"
菜单 (对于缺省的 Menu.vim 而言) 
<code class="example">        :map &lt;M-Space&gt; :simalt ~&lt;CR&gt;</code>
这个命令通过映射 Alt-Space 弹出 Vim 窗口的系统菜单。<code class="note">注意</code>: ~ 在 simalt 命令里代
表 <code class="special">&lt;Space&gt;</code> (空格)。 
<code class="example">        :map &lt;C-n&gt; :simalt ~n&lt;CR&gt;</code>
把 <code class="keystroke">CTRL-N</code> 映射成 Alt-Space + N。也就是打开窗口的系统菜单，然后按 N，最小化 Vim
窗口。

<code class="note">备注</code> 键映射取决于你使用的语言。

                                                <b class="vimtag"> <a name="intellimouse-wheel-problems">intellimouse-wheel-problems</a> </b>
用智能鼠 (Intellimouse) 的滑轮会引起 Vim 不能接收输入。到:
        ControlPanel - Mouse - Wheel - UniversalScrolling - Exceptions

把 gvim 加到列表里就可以了。这个问题仅在使用智能鼠驱动程序 2.2 版本，并且打开
"Universal Scrolling" 时才会出现。


XPM 支 持                                               <b class="vimtag"> <a name="w32-xpm-support">w32-xpm-support</a> </b>

GVim 可以在 MS-Window 上编译时加入 XPM 文件的支持。 <a href="various.html#+xpm_w32">+xpm_w32</a> 
具体步骤见 Make_mvc.mak 文件，查找 XPM。

要测试 XPM 支持是否可用: 
<code class="example">        :help</code>
<code class="example">        :let runtime = escape($VIMRUNTIME, ' \')</code>
<code class="example">        :exe 'sign define vimxpm icon=' .. runtime .. '\\vim16x16.xpm'</code>
<code class="example">        :exe 'sign place 1 line=1 name=vimxpm file=' .. expand('%:p')</code>

可从 github 获取 vim16x16.xpm 文件:
<a href="https://github.com/vim/vim/blob/master/runtime/vim16x16.xpm">https://github.com/vim/vim/blob/master/runtime/vim16x16.xpm</a>


 vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
</section>
</article>
<footer>
Generated by vim2html
</footer>
</body>
</html>
